The invention relates to methods and equipment for synchronizing a database between two parties. In a very common but non-restricting application, one party is a desktop computer, while the other one is a portable computer, a pocket computer or a “smart” telephone. In most applications each party contains its own data processor, but the invention is also usable in applications in which a single data processor synchronizes data items between two data storages, and the parties may be construed as processes executing in a single processor. The database contains data items, such as documents or calendar events, that can be changed at either party. As commonly used in the context of databases, synchronization means reducing or eliminating differences between the database copies maintained at the parties, which are supposedly similar but at least one database contains changed data items which are not reflected in the other database.
It is well known to provide data items with timestamps that indicate the time of the latest change. Graphical user interfaces use a ‘drag and drop’ metaphor with which a user may drag a set of files from one location to another such that the more recent versions of the files replace the older ones. Synchronization between two folders can be achieved by performing the ‘drag and drop’ operation in both directions. But the timestamp-based synchronization cannot be used if the data items do not have timestamps. A further problem is that if the parties' clocks are offset in relation to each other, an older version of a data item may accidentally overwrite a more recent one.